package com.dragon.refect.clazz;

import java.lang.reflect.Constructor;
import java.util.Arrays;

/**
 * 返回一个包含构造函数对象的数组，该对象反映此Class对象表示的类的所有公共构造函数。
 * 如果该类没有公共构造函数，或者该类是数组类，或者该类反映原始类型或void，则返回长度为0的数组。
 * 请注意，尽管此方法返回一个Constructor <T>对象的数组（也就是此类的构造函数的数组），
 * 但此方法的返回类型为Constructor <？> []，而不是Constructor <T> []。 预期。 这种信息量较少的返回类型是必需的，
 * 因为从此方法返回后，可以修改该数组以容纳不同类的Constructor对象，这将违反Constructor <T> []的类型保证。
 *
 * @author dragon
 * @since 2019/12/1
 */
public class ClassGetConstructorsTest {

    public static void main(String[] args) throws IllegalAccessException, InstantiationException {
        Class clazz = Person.class;
        Constructor[] constructors = clazz.getConstructors();
        System.out.println(Arrays.toString(constructors));
    }
}
